package com.sort;

import java.util.Arrays;

public class SelectionSort {
    public static void main(String[] args) {
        // 需要排序的数组
        int[] arry = {5, 3, 6, 2, 0};
        // 进行选择排序，并返回一个已经排序好的数组
        selecctionSort(arry);
        // 输出已经排序好的数组
        System.out.println("数组排序完毕："+Arrays.toString(arry));
    }


    /**
     *
     * @param arry
     * @return
     */
    public static int[] selecctionSort(int[] arry){
        //第一层循环，控制交换位置的次数
        for (int i = 0; i < arry.length - 1 ; i++){
            int smallest = arry[i]; //本次交换的假定最小值
            int smallest_index = i; //本次交换假定最小值的索引位置
            //第二层循环，遍历数组，确定最小值
            for (int j = i + 1; j < arry.length; j++){
                if (arry[j] < smallest){
                    smallest = arry[j];
                    smallest_index = j;
                }
            }


            //再把确定的最小值换到假定最小值的位置
            int temp = arry[i];
            arry[i] = smallest;
            arry[smallest_index] = temp;

            System.out.println("第" + (i+1) + "次交换位置结果：" + Arrays.toString(arry));

        }
        return arry;

    }
}
